package com.ruoyi.integration.map.utils;

import com.alibaba.fastjson2.JSONObject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.commons.lang3.StringUtils;

/**
 * @Description : 经纬度转换工具类
 * @Author : Bruce Lee
 * @CreateTime : 2025/2/17
 */

public class AddressAmapUtil {
    private static final String GD_URL = "https://restapi.amap.com/v3/geocode/regeo?output=json&location=";
    private static final String KEY = "";


    public static String getAddr(String longitude, String latitude){
        if(StringUtils.isBlank(longitude)|| StringUtils.isBlank(latitude)){
            System.out.println("经纬度不能急为空");
            return "";
        }
        String url = GD_URL+longitude+","+latitude+"&key="+KEY+"&radius=1000&extensions=all";
        try {
            URL apiUrl = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();
            connection.setRequestMethod("GET");
            connection.connect();
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                reader.close();
                JSONObject json = (JSONObject)JSONObject.parse(response.toString());
                String status = json.getString("status");
                if (status.equals("1")) {
                    JSONObject regeocode = json.getJSONObject("regeocode");
                    return regeocode.get("formatted_address").toString();
                } else {
                    System.out.println("查询失败：" + json.getString("info"));
                }
            } else {
                System.out.println("HTTP请求失败：" + responseCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}
